There are many cryptographic algorithms known in the art. One such cryptographic algorithm is described in U.S. Pat. No. 9,438,416 to Kurdziel (“Kurdziel”). The cryptographic algorithm implements a method that generally involves: combining a cryptographic key with state initialization bits to generate first combination bits; producing a first keystream by performing a permutation function ƒ using the first combination bits as inputs thereto; and using the first keystream to encrypt first data (e.g., authentication data or message body data) so as to produce first encrypted data (e.g., via modular arithmetic). The permutation function f comprises a round function ƒround that is iterated R times. The round function ƒround consists of (1) a substitution layer in which the first combination bits are substituted with substitute bits, (2) a permutation layer in which the substitute bits are re-arranged, (3) a mixing layer in which at least two outputs of the permutation layer are combined together, and (4) an addition layer in which a constant is added to the output of the mixing layer.